package dbconfig

import (
	"github.com/gin-gonic/gin"
	logging "github.com/sirupsen/logrus"
	"gorm.io/driver/mysql"
	"gorm.io/gorm"
	"gorm.io/gorm/schema"
	"time"
)

var DB *gorm.DB

func Database(connString string) {
	db, err := gorm.Open(mysql.Open(connString), &gorm.Config{
		//PrepareStmt: true,//缓存预编译语句
		//AllowGlobalUpdate: true, // 使用原生 SQL，或者启用 AllowGlobalUpdate 模式
		NamingStrategy: schema.NamingStrategy{
			SingularTable: true, // 使用单数表名
		},
	})
	if err != nil {
		panic(err)
	}
	sqlDB, err := db.DB()
	if err != nil {
		panic(err)
	}
	if gin.Mode() == "release" {
		db.Model(false)
	}
	sqlDB.SetMaxIdleConns(20)  //设置连接池，空闲
	sqlDB.SetMaxOpenConns(100) // 最大连接数
	sqlDB.SetConnMaxLifetime(time.Second * 30)

	DB = db
	logging.Info("init Mysql success")
}
